1 module about_associative_arrays; 2 3 import dunit; 4 import helpers; 5 6 class AboutAssociativeArrays 7 { 8 mixin UnitTest; 9 10 @Test 11 void creation_and_assignment() { 12 int[string] mymap; 13 mymap["hello"] = 3; 14 assertEquals(mymap["hello"], FILL_IN_THIS_NUMBER); 15 } 16 17 @Test 18 void other_operations() { 19 int[string] ages = ["bob" : 20, "joe" : 30, "dan" : 40]; 20 21 assertEquals(ages.length, FILL_IN_THIS_NUMBER); 22 23 auto age = ages["bob"]; 24 assertEquals(age, FILL_IN_THIS_NUMBER); 25 26 ages["bob"] = 77; 27 assertEquals(ages["bob"], FILL_IN_THIS_NUMBER); 28 29 import core.exception: RangeError; 30 try 31 { 32 age = ages["steven"]; 33 } 34 catch (RangeError e) 35 { 36 // accessing non existing elements raise an exception 37 assertEquals(e.msg, FILL_IN_THIS_STRING); 38 } 39 40 ages["steven"] = 66; //new ones can be added 41 assertEquals(ages["steven"], FILL_IN_THIS_NUMBER); 42 43 assertEquals(ages.length, FILL_IN_THIS_NUMBER); 44 45 ages.remove("joe"); // you can also remove elements 46 47 assertEquals(ages.length, FILL_IN_THIS_NUMBER); 48 } 49 50 @Test 51 void keys_and_values() { 52 string[string] colors = [ "black":"000000", 53 "white":"FFFFFF", 54 "red" :"FF0000", 55 "green":"00FF00", 56 "blue" :"0000FF"]; 57 assertEquals(colors.keys.length,FILL_IN_THIS_NUMBER); // .keys gives an array with all the keys 58 assertEquals(colors.values.length,FILL_IN_THIS_NUMBER); // same for .values 59 60 } 61 62 }